// 存储token
// 调接口
import { login, getUserInfo, getUserDetailById } from '@/api/user.js'
// 这是token的增删存
import { getToken, setToken, removeToken } from '@/utils/auth.js'
export default {
  namespaced: true,
  state: {
    // 存一个token
    // 从本地获取一下token
    token: getToken() || '',
    // 用户信息数据
    user: {}
  },
  mutations: {
    // 把获取到的token值存入state中
    setToken (state, token) {
      // 将token存入内存与本地
      state.token = token
      setToken(token)
    },
    // 删除token
    delToken (state) {
      // 清空并移除本地的token
      state.token = ''
      removeToken()
    },
    // 存储登录人信息的函数，
    setUser (state, user) {
      state.user = user
    },
    // 删除登录人信息的函数
    delUser (state) {
      state.user = {}
    }
  },
  actions: {
    // 获取token
    async ActionsToken (ctx, FromData) {
      // 调接口请求数据
      const res = await login(FromData)
      // 把数据存到mutations中
      ctx.commit('setToken', res)
      // console.log(res)
    },
    // 获取用户资料
    // 获取用户头像
    async ActionsUser (ctx) {
      const res = await getUserInfo()
      const photo = await getUserDetailById(res.userId)
      console.log(res, photo, 123)
      ctx.commit('setUser', { ...res, ...photo })
    },
    // 退出登录需要清除的函数
    logOutActions (ctx) {
      ctx.commit('delToken')
      ctx.commit('delUser')
    }
  }
}
